home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-26 | 1.2 KB | 67 lines | [TEXT/CWIE] |
-
- // mail <chelly@eden.com> or surf http://www.eden.com/~chelly for feedback
- // free source code - do whatever you like with it
-
- // resource access for application
- // could be expanded to allow multiple open files and the "chaining"
- // as the Mac resource manager does
-
- #include "reschain.h"
-
- #include "resfile_flat.h"
- #include "stream.h"
-
- #if TARGET_IS_MACOS
-
- #include <Resources.h>
- #include "resfile_macos.h"
-
- // put mac application resource chain in
- static resfile_macos s_app_resfile( CurResFile() );
-
- #endif
-
- static resfile* s_resfile = nil;
- static stream* s_stream = nil;
-
-
- void OpenResourceFile( const char* filename )
- {
- assert( !s_resfile );
-
- // use a flat resource file
- s_stream = new stream( filename );
- s_resfile = new resfile_flat( s_stream );
- }
-
- void CloseResourceFile()
- {
- delete s_resfile;
- s_resfile = nil;
- delete s_stream;
- s_stream = nil;
- }
-
- void* GetResourcePtr( long type, int id )
- {
- void* res = nil;
-
- // be sure file is open
- if ( s_resfile )
- res = s_resfile->get_resource( type, id );
-
- // let application resources show through on the mac
- #if TARGET_IS_MACOS
- if ( !res )
- res = s_app_resfile.get_resource( type, id );
- #endif
-
- return res;
- }
-
- void ReleaseResourcePtr( void* p )
- {
- resfile::release_resource( p );
- }
-
-